// api/router.js

// 封装 navigateTo
function navigateTo(options) {
	if (beforeEach(options.url)) {
		uni.navigateTo(options);
	}
}

// 封装 redirectTo
function redirectTo(options) {
	if (beforeEach(options.url)) {
		uni.redirectTo(options);
	}
}

// 封装 switchTab
function switchTab(options) {
	if (beforeEach(options.url)) {
		uni.switchTab(options);
	}
}

// 封装 reLaunch
function reLaunch(options) {
	if (beforeEach(options.url)) {
		uni.reLaunch(options);
	}
}

// 封装 navigateBack
function navigateBack(options) {
	uni.navigateBack(options);
	// if (beforeEach()) {
	//   uni.navigateBack(options);
	// }
}

// 自定义路由守卫函数
function beforeEach(url) {
	// 在这里添加自定义逻辑，例如权限验证
	if (url.includes('/pages/protectedPage')) {
		// 检查是否有权限访问受保护页面
		const hasAccess = checkUserAccess();
		if (!hasAccess) {
			uni.showToast({
				title: '您没有权限访问此页面',
				icon: 'none'
			});
			return false;
		}
	}
	return true;
}

// 示例：检查用户访问权限
function checkUserAccess() {
	// 在这里添加具体的权限验证逻辑
	// 例如检查用户是否已登录
	const user = uni.getStorageSync('user');
	return !!user;
}

// 导出封装的方法
export default {
	navigateTo,
	redirectTo,
	switchTab,
	reLaunch,
	navigateBack
};